/*
 * 描          述:  <描述>
 * 修  改   人:  Administrator
 * 修改时间:  2018年5月16日
 * <修改描述:>
 */
package com.tx.component.dailytask.executor;

import java.time.LocalDate;
import java.util.Map;

/**
 * 任务执行器<br/>
 * <功能详细描述>
 * 
 * @author  Administrator
 * @version  [版本号, 2018年5月16日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public interface DailyTaskExecutor {
    
    /** 任务关键字 */
    public String getId();
    
    /** 父级任务编码 */
    public String getParentId();
    
    /** 任务名 */
    public String getName();
    
    /** 排序值 */
    public int getPriority();
    
    /** 任务备注 */
    public String getRemark();
    
    /** 任务对应的SpringBean名 */
    public String getBeanName();
    
    /** 类名 */
    public String getClassName();
    
    /**
     * 执行任务<br/>
     * <功能详细描述>
     * @param localDate
     * @return [参数说明]
     * 
     * @return Date [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public void execute(LocalDate date);
    
    /**
     * 获取请求参数<br/>
     * <功能详细描述>
     * @return [参数说明]
     * 
     * @return Map<String,String> [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public Map<String, String> getParameters();
    
    /**
     * 是否能够交托给容器直接执行<br/>
     * <功能详细描述>
     * @return [参数说明]
     * 
     * @return boolean [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public default boolean isExecutable() {
        return false;
    }
}
